1. Technical Field
This invention relates generally to methods of blending and otherwise manipulating video images in a terminal such as a home communications terminal (HCT) in a cable television system. More particularly, the invention provides various features which improve the efficiency and capabilities of computer graphics in such a terminal.
2. Related Information
Conventional image processing techniques in terminals, such as those in cable television systems, have typically provided limited capabilities tailored to displaying simple information on the television screen such as menus and basic video overlays. As growth in the cable television industry has fostered new features including interactive video games, graphically intensive news shows, multimedia applications and the like, there has evolved a need to provide new and higher performance graphics capabilities on the terminals.
Additionally, newer generations of fiber-based networks have vastly increased the data bandwidths which can be transferred to and from individual homes, allowing entirely new uses to be developed for the terminals. As a result, conventional terminals and their graphical systems are quickly becoming obsolete. In short, terminals such as HCTs need to evolve to transform today's limited capability television sets into interactive multimedia entertainment and communication centers.
Conventional graphics display systems often include the ability to overlay an image onto background video. For example, sports scores may be superimposed at the bottom of a moving image of a football game. In such systems, each pixel can be rendered in one of three ways: opaque (each pixel takes on the value of the overlaid image only); translucent (the overlaid image and background image are be blended so that the background image can be "seen through" the overlay); or transparent (only the background image is displayed).
As another example, a graphical control object such as a volume control indicator may be superimposed over a live video image on a television display. As shown in FIG. 1A, for example, a live video image 101 may be combined with a volume control indicator 102 in such a manner that the resulting image 103 includes both images--i.e., the user can see two layers of screen images: the live video that was visible before the overlay, and the overlaid image itself.
In order to control the amount of blending in the aforementioned examples, conventional systems typically implement transparency by allocating a plurality of additional bits for each pixel which indicate the degree to which the pixels from the overlay and background will be blended. For example, a group of such "blending" bits for each pixel can be used as a value which is multiplied with the overlay pixel value before being combined with the background image, thus controlling whether the overlay portion or the background image will dominate the resultant image.
As shown in FIG. 1B, for example, each pixel value 104 in the overlay image 102 may have associated therewith a "blending" factor 105 (comprising a plurality of pixels) which is multiplied by the overlay pixel value in order to blend the overlay with a corresponding background image pixel 106 to produce a resultant pixel 108. These operations can be used to produce a blended image such as image 103 of FIG. 1A.
A conventional formula used to blend a foreground image and a background image for each pixel of a display is given by the following equation: EQU .alpha.*(foreground pixel value)+(1-.alpha.)*(background pixel value),
where .alpha. represents the blending value associated with each pixel in the foreground (overlay) image and "*" indicates multiplication. Commonly, for a red-green-blue (RGB) pixel value comprising 16 bits (5 red, 6 green, 5 blue), each color component is separately blended to produce the resultant image.
Unfortunately, adding a group of bits 105 as a blending factor to each overlay pixel increases the memory and processing requirements for manipulating the images. Thus, it may be necessary to provide wider memory interface buses, wider registers in the system to manipulate pixel values, and to add memory. In an HCT in which cost is a major concern, assigning additional bits for every pixel to implement transparency increases the memory requirements and processing needed to render each image frame. Accordingly, conventional approaches for implementing transparency may be too expensive to implement in a low-cost HCT.
It may also be desirable to blend two images in a spatially controlled manner, in order to "soften" sharp edges around an otherwise opaque overlaid portion of an image. For example, as shown in FIG. 1C, if an opaque circle 110 is to be displayed on a background image 109, the edges of the circle will create a sharp contrast to the background if the corresponding pixel values of the overlay and background are far apart. This effect can be mitigated by creating a "buffer" zone 111 around the overlay image 110, and blending pixel values within the buffer zone according to the same general principles shown in FIG. 1B. However, as described previously, it is usually necessary to associate a plurality of blending bits with each pixel value in the overlay image, thus increasing memory and processing requirements.